Procedure Linkage Table
インポートされた共有ライブラリの関数のアドレスを実行時に解決するために使用するもの。 リンカは、実行ファイルや共有ライブラリから別の実行ファイルへ共有ライブラリへの関数呼び出しを解決できない。コンパイル時に呼び出し先アドレスがわからないため、実行時にPLTとGOTの技術を用いる。GOTは解決済みのアドレスを保存するために使われる。 PLTは読み取り専用のセグメントにマッピングされる。 .got.pltは書き込み可能なセグメント。
ダイナミックシンボルはメモリ上にどこにあるのかコンパイル時にはわからない。
ダイナミックリゾルバ(通常はld.so)は、マッピングされたダイナミックデータの正しいアドレスを探し出して、要求元のプロセスに報告する。 従来のGOTは実行開始時にアドレス解決を行っていたらしい。GOT.PLTの場合は違う。
実行開始時に全てのアドレスの解決を行わず、"Lazy Biding"という技術を使用する。動的関数の絶対アドレスは呼び出されて初めて解決される。通常外部関数の数は多くプログラムロード時に全ての関数のエントリポイントを解決するのは効率的ではないため。